package com.nineclock.system.service;

import com.nineclock.common.entity.Result;
import com.nineclock.system.dto.SysApplyJoinCompanyUserDTO;
import com.nineclock.system.dto.SysCompanyDTO;
import com.nineclock.system.dto.SysCompanyUserDTO;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

public interface SysCompanyService {

    /**
     * 根据用户ID获取关联的企业列表
     * @param userId
     * @return
     */
    List<SysCompanyDTO> queryUserJoinCompany(@PathVariable Long userId);

    /**
     * 企业管理: 查询当前企业信息
     * 接口路径：GET/sys/company
     */
    SysCompanyDTO queryCompanyInfo();


    //上传企业Logo
    String uploadCompanyLogo(MultipartFile file) throws Exception;

    /**
     * 更新企业基本信息
     */
    void updateCompanyInfo(SysCompanyDTO sysCompanyDTO);

    /**
     * 企业管理: 获取企业当前主管理员
     * @return
     */
    SysCompanyUserDTO queryCurrentAdmin();

    /**
     * 接口名称：企业管理: 更改系统管理员
     * @param code
     * @param userId
     */
    void changeSysAdmin(String code, Long userId);

    /**
     * 根据关键字名称查询企业
     * @param keyword
     * @return
     */
    List<SysCompanyDTO> queryCompanyByName(String keyword);

    /**
     * 加入企业申请
     * @param applyJoinCompanyUserDTO
     */
    void applyJoinCompany(SysApplyJoinCompanyUserDTO applyJoinCompanyUserDTO);
}
